package com.parfinex.java.phase1.module2.task10;

/**
 * @Author: Li Jiahui
 * @Date: 2020/10/18 16:35
 * @Version 1.0
 * 实现静态内部类的定义和使用
 */
public class StaticOuter {
    private int cnt =1;
    private static int snt =2;
    public /*static*/ void show(){
        System.out.println("外部类中的show方法就在这里！");
    }
    /**
     * 定义静态内部类 有static关键字修饰隶属于类层级
     */

    public static class StaticInner{
        private int ia =3;
        private static int snt =4;
        public StaticInner(){
            System.out.println("静态内部类的构造方法哦！");
        }
        public void show(){
            System.out.println("ia =" +ia);//3
            System.out.println("外部类中的snt ="+snt);//2
//            System.out.println("外部类中的cnt ="+cnt);// Error:静态上下文中不能访问非静态的成员，因此此时可能还没有创建对象
        }
        public void show2(int snt){
            System.out.println("snt="+snt);
            System.out.println("内部类中的成员snt ="+StaticInner.snt);
            System.out.println("外部类中的成员snt ="+StaticOuter.snt);
            //StaticOuter.show();
            new StaticOuter().show();
        }
    }
}
